//layui.define定义模板
layui.define(['table','laydate','layer','upload'],function(exports){ //提示：模块也可以依赖其它模块，如：layui.define('layer', callback);

    //基础方法""
function object(o) {
    function F() {}
    F.prototype = o;
    return new F();
 }
 /*
  * layui http://www.layui.com/
  */
 function GD(obj) {
        obj.layui = obj.layui || null;
        for(var x in obj) {
            if (obj[x] === null) {
                throw  new Error("没有传入layui对象")
            }
        }
        this.layui = obj.layui;
 }

// 原型上 定义
   var  common = {
        //检测输入值 是否 正确
        check_err:function (obj,check) {
            var _this = this;
            return function (obj) {
                for (var x in obj){
                    if(!!obj[x]){
                        throw new Error(obj[x].error);
                    }
                }
                return _this;
            }
        },
        /*
        * type 请求类型 默认 get
        * url  请求链接
        * suc  成功回调
        * err  失败回调
        * */
        ajax:function (obj) {
            obj.type = obj.type || "get";//初始值为get

            this.check_err(obj);
            return $.ajax({
                url:obj.url,
                type:obj.type,
                success:obj.suc,
                error:obj.err
            })
        },
        /*
        * 初始化 表格
        *
        *
        * */
        init_table:function (layui,obj) {
            var table = layui.table;
            table.render({
                elem: '#test'
                ,url:''
                ,cols: [[
                    {type:'checkbox'}
                    ,{field:'id', width:80, title: 'ID', sort: true}
                    ,{field:'username', width:80, title: '用户名'}
                    ,{field:'sex', width:80, title: '性别', sort: true}
                    ,{field:'city', width:80, title: '城市'}
                    ,{field:'sign', title: '签名', minWidth: 100}
                    ,{field:'experience', width:80, title: '积分', sort: true}
                    ,{field:'score', width:80, title: '评分', sort: true}
                    ,{field:'classify', width:80, title: '职业'}
                    ,{field:'wealth', width:135, title: '财富', sort: true}
                ]]
                ,page: true
            });
        },
        
        //初始化日期和时间组件layui.laydate
     init_laydate:function(layui,obj){
     	
     
      	var laydate=layui.laydate;
       	if(!!obj.elem || obj.elem.lenght == 0){
   		//throw new Warning("elem 为空");
   		console.warn("elem 为空");
// 		throw  new Error("elem 为空");
   	}
      	laydate.render({
      		elem:obj.elem
            ,range:obj.range||false//或 range: '~' 来自定义分割字符
      	    ,value:obj.value|| new Date()//初始值
      	    ,show:obj.show||false//是否直接显示
            ,min:obj.min||'1900-01-01'
     	    ,max:obj.max||'2020-12-12'//最小/大范围，遵循type格式yyyy-MM-dd
      	    ,showBottom:obj.showBottom ||true//是否显示底部栏，false为否
      	    ,btns:obj.btns||['clear', 'now', 'confirm']//默认值：['clear', 'now', 'confirm']
      	    ,calendar:obj.calendar ||true//是否显示公历节日，true为是
      	    
  	});

    },
    
//  init_layer:function(layui,obj){
//  	var  $=layui.jquery,layer=layui.layer;
//  	layer.open({
//  		type:obj.type||0//0,信息框，默认。1页面层，2iframe层，3,加载层，4tips层
//  		,content:obj.content||'你确认要删除吗？'
//  	})
//  	
//  },

   init_upload:function(layui,obj){
   	   var upload=layui.upload;
   	   
   	   upload.render({
   	   	     elem:obj.elem//上传文件按钮id
   	   	     ,url:obj.url||'/user'
   	   	     ,auto:true 
   	   	     ,bindAction:obj.bindAction//确认上传按钮id
   	   	     ,multiple:true//可多文件上传
   	   	     ,before: obj.before
   	   	     ,done: function(res){//执行上传请求后的回调
                 console.log(res)
                   }
           ,error: function(){
      //演示失败状态，并实现重传
     //     var demoText = $('#demoText');
//    demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-mini demo-reload">重试</a>');
//    demoText.find('.demo-reload').on('click', function(){
//      uploadInst.upload();
//    });
    }
         
    });
   }
     
        
   }
    //输出test接口
    exports('common', common);//第一个为输出模块的名字，第二个为输出哪个对象

});

